//
// Created by shaun on 5/21/2025.
//

#ifndef ASCAN_VIEW_CONTROLLER_H
#define ASCAN_VIEW_CONTROLLER_H

#include <QObject>
#include "sdk_types.h"

namespace eintik::presentation::controller
{
    class GenericController final : public QObject
    {
        Q_OBJECT

    public:
        GenericController();

    signals:
        void GetParameters(std::unordered_map<eintik::KeyType, eintik::ValueType>& params);

    public slots:
        static void OnStartClicked();
        static void OnStopClicked();
        static void OnDebugClicked();
        static void OnConnectClicked();
        static void OnCloseClicked();
        static void OnSetClicked();

        void OnConfigClicked();
        void OnParameterChanged(const std::unordered_map<eintik::KeyType, eintik::ValueType>& params);
    };

} // namespace modules::user_interface::app

#endif //ASCAN_VIEW_CONTROLLER_H
